<?php

require_once __DIR__ . '/../controller/abstract/AbstractController.php';

/**
 * Classe utilitária para processamento das views.
 *
 * @author Hyzandey
 */
class ViewUtil {
    
    public static function renderizaInput($nome, $label){
        ?>
            <div class="input-container">
                <label for="<?php echo $nome?>"><?php echo $label?></label>
                <input name="<?php echo $nome?>" />
            </div>
        <?php
    }
    
    /**
     * Gera o html padrão de um combo.
     * 
     * @param string $nome Nome do campo no formulário
     * @param string $label Label (nome para o usuário) do campo
     * @param string $viewInfoNome Índice do array de informações da lista de
     *      valores.
     * @param string $metodoValor Nome do método que pega o valor de cada
     *      objeto.
     * @param boolean $opcional Se a combo pode ser deixada em branco.
     */
    public static function renderizaCombo($nome, $label, $viewInfoNome
            , $metodoValor, $opcional, $multiplo = false){
        $opcoesLista = AbstractController::getViewInfo($viewInfoNome);
        
        $selectTag = "select";
        
        $selectMultipleClass = "";
        
        if($multiplo){
			$opcional = false;
			$selectTag = "select multiple";
			$selectMultipleClass = "select-multiple required";
			$nome.="[]";
		}
        
        ?>
            <div class="input-container 
            	<?php echo $selectMultipleClass ?>"
            	>
                <label for="<?php echo $nome?>">
                    <?php echo $label ?>
                </label>                
                <<?php echo $selectTag?> name="<?php echo $nome?>">
        <?php
        
        if (gettype($opcoesLista) == 'array' && !empty($opcoesLista)):?>
                    <?php if($opcional): ?> 
                        <option value=""></option>
                    <?php endif ?>
                    <?php foreach ($opcoesLista as $opcao): ?>
                        <option value="
                        <?php 
                            $valor = call_user_func(array(
                                $opcao,
                                $metodoValor
                            ));
                            echo $valor; 
                        ?>
                                ">
                                    <?php echo $valor; ?>
                        </option>
                    <?php endforeach; ?>
        <?php endif;?>
                    
                </<?php echo $selectTag?>>
            </div>
            
        <?php
    }
}

?>
